var express = require('express')

var bodyParser = require('body-parser')

var app = express()

app.use('/public/', express.static('./public/')) 

// 配置使用 art-template 模板引擎
// 第一个参数表示：当渲染以 .art 结尾的文件的时候，使用 art-template 模板引擎
// express-art-template 是专门用来在 Express 中把 art-template 整合到 Express 中
// 虽然外面这里不需要记载 art-template 但是也必须安装
// 原因在于 express-template 依赖于 art-template
app.engine('html', require('express-art-template'))

// Express 为 Response 相应对象提供了一个方法：render
// render 方法默认是不可以使用，但是如果配置了模板引擎就可以使用了
// res.render('html模板名', {模板数据})
// 第一个参数不能写路径，默认会去项目中 views 目录查找该模板文件
// 也就是说 Express 有一个约定：开发人员把所有的视图文件都放到 views 目录中

// 如果想要修改默认的 views 目录，则可以
// app.set('views', render函数的默认路径)

// 配置 body-parser 中间件（插件，专门用来解析表单 POST 请求体）
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse applocation/json
app.use(bodyParser.json())

app.get('/', function(req, res){
    res.render('404.html')
})
app.get('/admin', function(req, res){
    res.render('admin/index.html', {
        title: '管理系统'
    })
})
app.get('/post', function(req, res){
    res.render('post.html')
})

// 当以 POST 请求 /post 的时候，执行指定的处理函数
// 这样我们就可以利用不同的请求方法让一个路径使用多次
app.post('/post', function(req, res){
    // console.log('收到表单 POST 请求')
    // 1.获取表单 POST 请求体数据
    // 2.处理
    // 3.发送响应

    // req.query 只能拿到 GET 请求的数据
    // console.log(req.query)

    // 在 Express 中没有内置获取表单 POST 请求体的 API，这里我们需要使用一个第三方包：body-parser
    // 安装：npm i -S body-parser
    // 配置：
    console.log(req.body)
})

// app.get('/pinglun', function(req, res){
//     var comment = req.query
//     comment.dateTime = '2020-9-23 11:18:25'
//     comments.unshift(comment)
//     res.redirect('/')
//     // res.statusCode = 302
//     // res.setHeader('Location', '/')
// })

app.listen(3000, function(){
    console.log('running...')
})